package com.lonely.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lonely.common.core.domain.Select;
import com.lonely.system.domain.entity.SysFactory;
import com.lonely.system.domain.dto.factory.SysFactoryStatQueryDto;
import com.lonely.system.domain.dto.factory.SysFactorySubmitDto;
import com.lonely.system.domain.vo.system.factory.SplitOrderFactoryLineSelectVo;
import com.lonely.system.domain.vo.system.factory.SysFactoryStatsVo;

import java.util.List;

/**
 * @author: 黄志标
 * @date: 2025/5/27 11:36
 * @description:
 */
public interface ISysFactoryService extends IService<SysFactory> {


    /**
     * 创建公司
     *
     * @param companySubmitDto
     * @return
     */
    void create(SysFactorySubmitDto companySubmitDto);

    /**
     * 编辑公司
     *
     * @param companySubmitDto
     */
    void edit(SysFactorySubmitDto companySubmitDto);

    /**
     * 工厂统计
     *
     * @param queryDto
     * @return
     */
    SysFactoryStatsVo stat(SysFactoryStatQueryDto queryDto);

    /**
     * 暂停工厂分单
     *
     * @param factoryId
     */
    void suspendSplitOrders(Long factoryId);

    /**
     * 停用工厂
     *
     * @param factoryId
     */
    void stopUsing(Long factoryId);

    /**
     * 获取工厂下拉列表
     *
     * @return
     */
    List<Select> getFactorySelectOptions();


    /**
     * 获取分单时候的工厂线路选择列表
     *
     * @return
     */
    SplitOrderFactoryLineSelectVo getSplitOrderFactoryLineSelectOptions();

    /**
     * 根据工厂id获取供应名称
     *
     * @param factoryId
     * @return
     */
    String getFactoryName(Long factoryId);
}
